export default class MockSVG {
  /**
   * 生成一个 SVG 图片的 Base64 Data URL
   * @param {Object} options - 配置参数对象
   * @param {Array} options.size - 图片尺寸 [宽度, 高度]
   * @param {string} options.bgColor - 背景颜色 (CSS格式，如: "#ffffff" 或 "rgba(0, 0, 0, 0.5)")
   * @param {string} options.text - 图片中显示的文本
   * @param {string} options.textColor - 文本颜色 (CSS格式)
   * @param {number} options.fontSize - 文本大小 (以像素为单位)
   * @param {number} options.fontFamily - 字体族 (CSS格式)
   * @param {number} options.fontWeight - 字体粗细 (CSS格式)
   * @param {string} options.slot - 插槽
   * @returns {string} - SVG 图片的 Base64 Data URL
   */
  static generate({
    size = [320, 280],
    bgColor = "#f2f5f7",
    text = "placeholder",
    textColor = "#00000033",
    fontSize = 32,
    fontFamily = 'Arial, sans-serif',
    fontWeight = 'normal',
    slot = ''
  } = {}) {
    const [width, height] = size;

    // 创建 SVG 内容
    const svgContent = `
      <svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}">
        <rect name="default_bg" width="100%" height="100%" fill="${bgColor}" />
        <text
          name="default_text"
          x="50%" 
          y="50%" 
          fill="${textColor}" 
          font-size="${fontSize}" 
          font-family="${fontFamily}" 
          font-weight="${fontWeight}" 
          text-anchor="middle" 
          alignment-baseline="central"
        >
          ${text}
        </text>
        ${slot}
      </svg>
    `;

    // 将 SVG 转为 Base64 编码的 Data URL
    const base64Data = btoa(unescape(encodeURIComponent(svgContent)));
    return `data:image/svg+xml;base64,${base64Data}`;
  }
}